//package app.jietuqi.cn.util.statusbar;
//
//import android.annotation.SuppressLint;
//import android.annotation.TargetApi;
//import android.app.Activity;
//import android.content.Context;
//import android.graphics.Color;
//import android.os.Build;
//import android.support.annotation.IntDef;
//import android.view.View;
//import android.view.ViewGroup;
//import android.view.Window;
//import android.view.WindowManager;
//
//
//import java.lang.annotation.Retention;
//import java.lang.annotation.RetentionPolicy;
//import java.lang.reflect.Field;
//import java.lang.reflect.Method;
//
///**
// * 作者： liuyuanbo on 2018/10/2 17:26.
// * 时间： 2018/10/2 17:26
// * 邮箱： 972383753@qq.com
// * 用途：
// */
//
//public class StatusBarUtil {
//    public final static int TYPE_MIUI = 0;
//    public final static int TYPE_FLYME = 1;
//    public final static int TYPE_M = 3;//6.0
//
//    @IntDef({TYPE_MIUI,
//            TYPE_FLYME,
//            TYPE_M})
//    @Retention(RetentionPolicy.SOURCE)
//    @interface ViewType {
//    }
//
//    /**
//     * 修改状态栏颜色，支持4.4以上版本
//     *
//     * @param colorId 颜色
//     */
//    public static void setStatusBarColor(Activity activity, int colorId) {
//
////        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
////            Window window = activity.getWindow();
////            window.setStatusBarColor(colorId);
////        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
////            //使用SystemBarTintManager,需要先将状态栏设置为透明
////            setTranslucentStatus(activity);
////            SystemBarTintManager systemBarTintManager = newfun SystemBarTintManager(activity);
////            systemBarTintManager.setStatusBarTintEnabled(true);//显示状态栏
////            systemBarTintManager.setStatusBarTintColor(colorId);//设置状态栏颜色
////        }
//    }
//
//    /**
//     * 设置状态栏透明
//     */
//    @TargetApi(19)
//    public static void setTranslucentStatus(Activity activity) {
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//            //5.x开始需要把颜色设置透明，否则导航栏会呈现系统默认的浅灰色
//            Window window = activity.getWindow();
//            View decorView = window.getDecorView();
//            //两个 flag 要结合使用，表示让应用的主体内容占用系统状态栏的空间
//            int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
//                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
//            decorView.setSystemUiVisibility(option);
//            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
//            window.setStatusBarColor(Color.TRANSPARENT);
//            //导航栏颜色也可以正常设置
//            //window.setNavigationBarColor(Color.TRANSPARENT);
//        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
//            Window window = activity.getWindow();
//            WindowManager.LayoutParams attributes = window.getAttributes();
//            int flagTranslucentStatus = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
//            attributes.flags |= flagTranslucentStatus;
//            //int flagTranslucentNavigation = WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;
//            //attributes.flags |= flagTranslucentNavigation;
//            window.setAttributes(attributes);
//        }
//    }
//
//
//    /**
//     *  代码实现android:fitsSystemWindows
//     *
//     * @param activity
//     */
//    public static void setRootViewFitsSystemWindows(Activity activity, boolean fitSystemWindows) {
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
//            ViewGroup winContent = (ViewGroup) activity.findViewById(android.R.id.content);
//            if (winContent.getChildCount() > 0) {
//                ViewGroup rootView = (ViewGroup) winContent.getChildAt(0);
//                if (rootView != null) {
//                    rootView.setFitsSystemWindows(fitSystemWindows);
//                }
//            }
//        }
//
//    }
//
//
//    /**
//     * 设置状态栏深色浅色切换
//     */
//    public static boolean setStatusBarDarkTheme(Activity activity, boolean dark) {
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
//            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//                setStatusBarFontIconDark(activity, TYPE_M, dark);
//            } else if (OSUtils.isMiui()) {
//                setStatusBarFontIconDark(activity, TYPE_MIUI, dark);
//            } else if (OSUtils.isFlyme()) {
//                setStatusBarFontIconDark(activity, TYPE_FLYME, dark);
//            } else {//其他情况
//                return false;
//            }
//
//            return true;
//        }
//        return false;
//    }
//
//    /**
//     * 设置 状态栏深色浅色切换
//     */
//    public static boolean setStatusBarFontIconDark(Activity activity, @ViewType int type,boolean dark) {
//        switch (type) {
//            case TYPE_MIUI:
//                return setMiuiUI(activity, dark);
//            case TYPE_FLYME:
//                return setFlymeUI(activity, dark);
//            case TYPE_M:
//            default_bg:
//                return setCommonUI(activity,dark);
//        }
//    }
//
//    //设置6.0 状态栏深色浅色切换
//    public static boolean setCommonUI(Activity activity, boolean dark) {
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//            View decorView = activity.getWindow().getDecorView();
//            if (decorView != null) {
//                int vis = decorView.getSystemUiVisibility();
//                if (dark) {
//                    vis |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
//                } else {
//                    vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
//                }
//                if (decorView.getSystemUiVisibility() != vis) {
//                    decorView.setSystemUiVisibility(vis);
//                }
//                return true;
//            }
//        }
//        return false;
//
//    }
//
//    //设置Flyme 状态栏深色浅色切换
//    public static boolean setFlymeUI(Activity activity, boolean dark) {
//        try {
//            Window window = activity.getWindow();
//            WindowManager.LayoutParams lp = window.getAttributes();
//            Field darkFlag = WindowManager.LayoutParams.class.getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON");
//            Field meizuFlags = WindowManager.LayoutParams.class.getDeclaredField("meizuFlags");
//            darkFlag.setAccessible(true);
//            meizuFlags.setAccessible(true);
//            int bit = darkFlag.getInt(null);
//            int value = meizuFlags.getInt(lp);
//            if (dark) {
//                value |= bit;
//            } else {
//                value &= ~bit;
//            }
//            meizuFlags.setInt(lp, value);
//            window.setAttributes(lp);
//            return true;
//        } catch (Exception e) {
//            e.printStackTrace();
//            return false;
//        }
//    }
//
//    //设置MIUI 状态栏深色浅色切换
//    public static boolean setMiuiUI(Activity activity, boolean dark) {
//        try {
//            Window window = activity.getWindow();
//            Class<?> clazz = activity.getWindow().getClass();
//            @SuppressLint("PrivateApi") Class<?> layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
//            Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
//            int darkModeFlag = field.getInt(layoutParams);
//            Method extraFlagField = clazz.getDeclaredMethod("setExtraFlags", int.class, int.class);
//            extraFlagField.setAccessible(true);
//            if (dark) {    //状态栏亮色且黑色字体
//                extraFlagField.invoke(window, darkModeFlag, darkModeFlag);
//            } else {
//                extraFlagField.invoke(window, 0, darkModeFlag);
//            }
//            return true;
//        } catch (Exception e) {
//            e.printStackTrace();
//            return false;
//        }
//    }
//    //获取状态栏高度
//    public static int getStatusBarHeight(Context context) {
//        int result = 0;
//        int resourceId = context.getResources().getIdentifier(
//                "status_bar_height", "dimen", "android");
//        if (resourceId > 0) {
//            result = context.getResources().getDimensionPixelSize(resourceId);
//        }
//        return result;
//    }
//}